﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Biciq.Web.UI.Controles

{
    public delegate void WUCMensajesDelegate();
    public delegate bool WUCMensajesDelegateRespuesta();

    public partial class WUCMensajes : System.Web.UI.UserControl
    {
        protected System.Web.UI.HtmlControls.HtmlTable messagePane;
        protected System.Web.UI.WebControls.Label lblMensaje;
        protected System.Web.UI.WebControls.Button cmdAceptar;
        protected System.Web.UI.WebControls.Button cmdCancelar;
        protected System.Web.UI.HtmlControls.HtmlImage imgTipoMensaje;
        protected System.Web.UI.WebControls.Label lblDetalleError;
        protected System.Web.UI.HtmlControls.HtmlTableRow trDetalleError;




        #region Manejadores de Eventos
        private void Page_Load(object sender, System.EventArgs e)
        {
            try
            {
                if (IsPostBack)

                    return;
            }
            catch
            {
                throw;
            }
        }



        //protected override void Render(System.Web.UI.HtmlTextWriter writer)
        //{
        //    StringBuilder s = new StringBuilder();

        //    s.Append("<script language='javascript' src='../Scripts/images.js' type='text/javascript'></script>");
        //    s.Append("<script language=\"javascript\" type=\"text/javascript\">\n");
        //    s.Append("preload('collapsed_img','img/item_collapsed.gif');\n");
        //    s.Append("preload('expanded_img','img/item_expanded.gif');\n");
        //    s.Append("var paneStateError = 'collapsed';\n");
        //    s.Append("function switchPaneStateError(obj) {\n");
        //    s.Append("var imageObj = obj.firstChild;\n");
        //    s.Append("var detailObj = document.getElementById('detailError');\n");
        //    s.Append("if (paneStateError=='expanded') {\n");
        //    s.Append("	changeImage(imageObj, 'collapsed_img');\n");
        //    s.Append("	detailObj.style.display = 'none';\n");
        //    s.Append("	paneStateError = 'collapsed';\n");
        //    s.Append("}else{\n");
        //    s.Append("	changeImage(imageObj, 'expanded_img');\n");
        //    s.Append("	detailObj.style.display = 'block';\n");
        //    s.Append("	paneStateError = 'expanded';\n");
        //    s.Append("}\n");
        //    s.Append("}\n");
        //    s.Append("</script>\n");

        //    writer.Write(s.ToString());

        //    base.Render(writer);
        //}
        #endregion

        #region Métodos Publicos
        public void EsconderMensaje()
        {
            messagePane.Visible = false;
        }

        public void Mensaje(string tipoMensaje, string strMensaje)
        {
            //try
            //{
            messagePane.Visible = false;


            switch (tipoMensaje)
            {
                case "Error":
                    lblMensaje.Text = strMensaje;
                    imgTipoMensaje.Src = "../img/MError.png";
                    messagePane.Visible = true;
                    break;

                case "Informacion":
                    lblMensaje.Text = strMensaje;
                    messagePane.Visible = true;
                    imgTipoMensaje.Src = "../img/MInfo.png";
                    break;

                case "Alerta":
                    lblMensaje.Text = strMensaje;
                    messagePane.Visible = true;
                    imgTipoMensaje.Src = "../img/MAlerta.png";
                    break;
                case "AlertaBotones":
                    lblMensaje.Text = strMensaje;
                    messagePane.Visible = true;
                    imgTipoMensaje.Src = "../img/MAlerta.png";
                    cmdAceptar.Visible = true;
                    cmdCancelar.Visible = true;
                    break;
            }
            // }
            //catch (Exception ex)
            //{
            //    throw ex;
            //}

        }

        //Funcion de mensaje de error

        public void Mensaje(string tipoMensaje, string strMensaje, string srtDetalle)
        {
            try
            {
                messagePane.Visible = false;
                cmdAceptar.Visible = false;
                cmdCancelar.Visible = false;

                switch (tipoMensaje)
                {
                    case "Error":
                        lblMensaje.Text = strMensaje;
                        lblDetalleError.Text = srtDetalle;
                        imgTipoMensaje.Src = "../img/MError.png";
                        messagePane.Visible = true;

                        break;
                    case "Informacion":
                        lblMensaje.Text = strMensaje;
                        lblDetalleError.Text = srtDetalle;
                        messagePane.Visible = true;
                        imgTipoMensaje.Src = "../img/MInfo.png";
                        break;
                    case "Alerta":
                        lblMensaje.Text = strMensaje;
                        lblDetalleError.Text = srtDetalle;
                        messagePane.Visible = true;
                        imgTipoMensaje.Src = "../img/MAlerta.png";
                        break;
                    case "AlertaBotones":
                        lblMensaje.Text = strMensaje;
                        lblDetalleError.Text = srtDetalle;
                        messagePane.Visible = true;
                        imgTipoMensaje.Src = "../img/MAlerta.png";
                        cmdAceptar.Visible = true;
                        cmdCancelar.Visible = true;
                        break;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }



        /// <summary>
        /// Mensajes de acciones sobre la BDD
        /// </summary>
        /// <param name="seleccion">G: consulta, A: alta, M: modificar, B: baja</param>
        /// <param name="mensaje">mensaje del Comti</param>
        /// <param name="cod_retorno">código de retorno ("0" si es éxito)</param>
        /// <param name="num_regs">numero de registros</param>
        public void Mensaje(string seleccion, string mensaje, string cod_retorno, short num_regs)
        {
            try
            {
                messagePane.Visible = false;
                cmdAceptar.Visible = false;
                cmdCancelar.Visible = false;
                if (cod_retorno == "0")
                {
                    if (num_regs == 0)
                    {
                        switch (seleccion)
                        {
                            case "A":
                            case "B":
                            case "M":
                            case "G":
                            case "C":
                            case "P":
                            case "F":
                                lblMensaje.Text = mensaje;
                                imgTipoMensaje.Src = "../img/MInfo.png";
                                break;
                            default:
                                lblMensaje.Text = "No se obtuvieron registros debido a: " + mensaje;
                                imgTipoMensaje.Src = "../img/MAlerta.png";
                                break;
                        }

                    }
                    else
                    {
                        lblMensaje.Text = mensaje;
                        imgTipoMensaje.Src = "../img/MInfo.png";
                    }
                }
                else
                {
                    lblMensaje.Text = "Se produjo un error debido a: " + mensaje;
                    imgTipoMensaje.Src = "../img/MError.png";
                }
                messagePane.Visible = true;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void MensajeAlerta(string mensaje)
        {
            Mensaje("Alerta", mensaje);
        }

        public void MensajeError(string mensaje)
        {
            Mensaje("Error", mensaje);
        }

        public void MensajeInformacion(string mensaje)
        {
            Mensaje("Informacion", mensaje);
        }
        #endregion			

    }
}